/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.arquimedes.bo.reporte;

import java.util.ArrayList;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import org.arquimedes.jpa.util.JpaManager;
import org.arquimedes.dto.ReporteAlarmasDto;

/**
 *
 * @author juanda
 */
public class ReporteAlarmasBo {
    public ArrayList<ReporteAlarmasDto> generarReporte(String usuario)
    {
	EntityManager em=JpaManager.getEntityManager();
	
	String quetyReporte=
		"SELECT "
		+ "NEW org.arquimedes.dto.ReporteAlarmasDto("
		    + "c.nombre AS conjunto, "
		    + "i.numeroVivienda AS numeroVivienda, "
		    + "p.nombre AS nombre, "
		    + "p.apellido AS apellido, "
		    + "an.marca AS antena, "
		    + "u.nombre AS ubicacion,"
		    + "s.tipo AS tipoSensor, "
		    + "al.fechaHora AS fechaHora,"
		    + "al.estado AS estado) "
		+ "FROM Conjunto c "
		+ "JOIN c.inmuebleCollection i "
		+ "JOIN i.propietario p "
		+ "JOIN i.antenaCollection an "
		+ "JOIN an.sensorCollection s "
		+ "JOIN s.alarmaCollection al "
		+ "JOIN al.ubicacion u "
		+ "WHERE p.usuario=? "
		+ "ORDER BY al.fechaHora";
	
	Query query=em.createQuery(quetyReporte);
//	query.setFirstResult(begin);
//	query.setMaxResults(20);
	query.setParameter(1, usuario);
	@SuppressWarnings("unchecked")
	ArrayList<ReporteAlarmasDto> listaConjuntos=(ArrayList<ReporteAlarmasDto>) query.getResultList();
	return listaConjuntos;
    }
}
